Product placement engine and method

ABSTRACT

A product placement engine and method for automatically identifying products for association with a document, the engine including a parser, an analysis module adapted to determine word scores and to adjust the word scores of the words by predetermined weightings, a keyword constructor module adapted to construct a keyword query search string using words having the highest word scores, a search engine adapted to search a products database having product records to identify products satisfying the keyword query search string and assign product scores, and a post processing module adapted to identify word matches in each of the product records and the document and update the product score.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a Continuation of U.S. patent application Ser. No.14/665,860, filed on Mar. 23, 2015 (now pending), which is Continuationof U.S. patent application Ser. No. 12/366,950, filed on Feb. 6, 2009,now U.S. Pat. No. 9,015,182, which is a Divisional of U.S. patentapplication Ser. No. 10/911,733, filed on Aug. 5, 2004 now U.S. Pat. No.7,505,969, which claims priority to U.S. Provisional Application No.60/492,327, filed Aug. 5, 2003, the disclosures of which are herebyincorporated herein by reference in their entirety.

BACKGROUND OF THE INVENTION

Field of the Invention

The present invention is directed to a product placement engine systemand method that analyzes a document such as a web page to extractinformation regarding the content of the document, and identify anyrelevant products or services that relate to the document.

Description of Related Art

The Internet is a worldwide network of computers linked together byvarious hardware communication links all running a standard suite ofprotocols known as TCP/IP (transmission control protocol/Internetprotocol). The growth of the Internet over the last several years hasbeen explosive, fueled in the most part by the widespread use ofsoftware viewers known as browsers and HTTP (hypertext transferprotocol) which allow a simple GUI (graphical user interface) to be usedto communicate over the Internet. Browsers generally reside on thecomputer used to access content on the Internet, i.e. the clientcomputer. HTTP is a component of TCP/IP and provides users access tofiles of various formats using a standard page description languageknown as HTML (hypertext markup language), XML (extensible markuplanguage), and XHTML (extensible hypertext markup language). Thecollection of servers on the Internet using HTTP has become known as the“World Wide Web” or simply the “web.”

Through HTML, XHTML, and interactive programming protocols, the authorof a particular web page is able to make information available toviewers of the web page by placing the web page on an Internet webserver. A client computer running a browser can request and display aweb page stored on a web server by issuing a URL request through theInternet to the web in a known manner Such a web page typicallyincorporates both textural and graphical information including embeddedhyper-text links and/or embedded applets, written in Java™ or anotherprogramming language.

As known and appreciated in the art, there are presently millions of webpages with various content. Tools have been developed to allow the userto search these web pages to obtain the various web pages having thevarious content of interest. One way to locate the desired web pages isto use a “search engine” which will search for web pages having aparticular keyword or keywords. When a user seeking information from theweb types in a keyword(s) in a search field of the search engine, thesearch engine's software program then utilizes algorithmic functions andcriteria to find keyword matches in the information stored in thedatabases. The software program then sorts through the results of thesearch and provides a prioritized set of results to the user based onrelevancy of the web page. Various search engine software programsdiffer in their methods used for determining a web page's relevancy. Forexample, the software may view the “meta tag” of the page, include acounter for counting the number of keyword occurrences on the text ofthe page, and/or consider the web page's popularity as well as otherfactors such as whether the webmaster of the web page has made specialarrangements to have the web page displayed as a result of the search.

One of the primary applications of the web has been for shopping, i.e.the purchase of goods and services, i.e. products. Virtually every majorcommercial “bricks and mortar” merchant has established a web site forthe showcase and sale of their products. Furthermore, many manufacturerssell products directly over the web. Finally, a plethora of on-linemerchants, not previously existing in the bricks and mortar world, havecome into existence. As a result, virtually every product is availablefor purchase over the web from a plurality of merchants. This situationhas increased the efficiency of markets by permitting shoppers toreadily compare products and terms of sale from plural merchants withoutthe need to travel physically to the merchant locations.

Presently, when a consumer accesses a merchant's web site to research aparticular product, only information regarding the particular productbeing researched is provided. Although the consumer may desire toresearch and identify an alternative product similar to the particularproduct being researched, tools for facilitating identification of suchproducts are generally not available. For example, to obtain informationregarding an alternative product in merchant websites, the consumer istypically required to display a listing of all of the products in aparticular category, and to select an product to thereby displaydetailed information regarding the selected product. However, thisselection is done by the consumer without information as to whether thenewly selected product is comparable to the researched product.

Some merchant websites such as www.bestbuy.com provide a boxed windowthat may be entitled “Also Consider” or the like which identifies analternative product for the consumer's consideration in a pagedisplaying detailed information regarding a product that was selected bythe consumer. The identified product is implemented as a link which maybe selected by the consumer to obtain detailed information regarding theproduct. However, the boxed window is implemented to merely identifyproducts offered by the same manufacturer of the originally selectedproduct, and identifies products having nearly identical specificationthat may only differ nominally, for example, color of the trim, or to aproduct from the same manufacturer having increased capacity of aparticular feature, for example, memory capacity.

Furthermore, the product that is identified to the user is typicallymanually linked to the web page displaying the originally selectedproduct. This manual linking of one page to another is time consumingand a certain level of knowledge and experience is required for theadministrator or other personnel to select an appropriate product thatis truly comparable to the selected product. Such requirements furtherincrease the cost for identifying such products.

The above described merchandizing technique depends also on the targetedweb page being already discretely tied to a particular product, whichproduct forms the basis of matching and comparison. In practice, manyother web pages would be acceptable venues for associated merchandizing.However, most web pages do not have any particular product associatedthereto or have any products mentioned at all in the web page. If thereis no product that is associated to a web page, the productspecification-based matching and comparison is entirely non-applicable.For example, the web page may be a review of a concert by a rock band.Because there are no products in the web page, presently known methodsfor product specification-based matching and comparison cannot beapplied. However, such a web page would still be an appropriate venuefor associated merchandizing for products related to music, for example,an MP3 player.

U.S. Pat. No. 6,122,647 to Horowitz et al. discloses a system, method,and software product that create contextual hypertext links relevant toa user selected portion of a source document. The contextual linksenable the user to dynamically associate the source document with anyavailable target document, regardless of whether links were createdbetween the source document and the target document when the sourcedocument was created. The method includes selecting terms relevant tothe user selected portion by linguistic analysis which selects the mostfrequently occurring terms. From the selected terms, target documentsrelevant to the selected terms are identified. The target documents areselected by identifying topics that are associated with, or describedby, the selected terms. Contextual links are created between theselected terms and target documents associated with the identifiedtopics using the URLs for the documents in the contextual links. Thesystem includes a knowledge base of topics, including hierarchicalrelations between topics, and associations of topics and terms. Adocument collection includes documents and references to documents, andURL or other addressing information for the documents. A tagging modulereceives a user selected portion and selects terms to be used for thecontextual links. A presentation module identifies the topics in theknowledge base associated with the selected terms, the documentsassociated with each topic, and creates the hypertext links between theterms and the documents.

Presently, no systems or methods are available for substantiallyautomatically identifying relevant products that can be associated tothe content of a web page document, especially if there are no productsassociated to the web page document. Therefore, there exists anunfulfilled need for a system and method for minimizing the above noteddisadvantages associated with present systems and methods foridentifying relevant products. In addition, there exists an unfulfilledneed for such a system and method that minimizes cost and can performthese tasks substantially automatically with minimal input from theadministrator or other personnel, and that can do so even where there isno prior associated product for the web page document.

SUMMARY OF THE INVENTION

Almost any business or enterprise which possesses and uses a productcatalog, has also a mechanism for searching that catalog, and saidmechanism is nearly always a Boolean keyword search engine of some form.Most of these systems are very mature in that they enjoy the benefit ofmany years of profiling and efficiency optimization as regards to theirspeed, reliability, maintainability, etc. The present inventiondescribed herein has the advantage of utilizing and leveraging theinvestment in such a mechanism, by lending itself to a pre- andpost-processing paradigm, wherein all the methods are implemented beforeand after the execution of search into the product catalog, for example,a Boolean keyword search. The pre-processing results in a keyword stringwhich then functions as the input to the keyword search, which isexecuted over the product catalog database. Such a search results in alist of candidate product records, each with a preliminary score basedon the keyword match relevancy as outputted by the search engine. Theseresults become the input for post-processing. Thus, the existing keywordsearch does much of the intensive database processing that is necessary,so further processing such as the application of computationallinguistics and other advanced techniques, is performed by modules ofthe present invention. This allows rapid deployment into enterprisesystems which already possess, and are familiar with, their own catalogsearch mechanism.

In view of the foregoing, one exemplary embodiment of the presentinvention is a method of automatically identifying products forassociation with a document including the steps of providing a productsdatabase having product records containing information regarding anassociated product, parsing a document, determining word scores of thewords in the document based on the frequency of the words in thedocument, adjusting the word scores of the words by predeterminedweightings corresponding to the use of each word in the document,constructing a keyword query search string using words having thehighest word scores, searching the product records of the productsdatabase to identify products satisfying the keyword query searchstring, assigning product scores to the identified products based onmatches to the keyword query search string, parsing the product recordsto identify word matches in each of the product records and thedocument, updating the product score by processing the adjusted wordscores corresponding to the matched word with the product score of theproduct for which word matched, and selecting products from theidentified products that have the highest updated product scores.

Another exemplary embodiment of the present invention is a productplacement engine for automatically identifying products for associationwith a document including a parser adapted to parsing a document, ananalysis module adapted to determine word scores of the words in thedocument based on the frequency of the words in the document, and toadjust the word scores of the words by predetermined weightingscorresponding to the use of each word in the document, a keywordconstructor module adapted to construct a keyword query search stringusing words having the highest word scores, a search engine adapted tosearch a products database having product records containing informationregarding an associated product to identify products satisfying thekeyword query search string and assign product scores to the identifiedproducts based on matches to the keyword query search string, and a postprocessing module adapted to identify word matches in each of theproduct records and the document and update the product score byprocessing the adjusted word scores corresponding to the matched wordwith the product score of the product for which word matched.

Yet another exemplary embodiment of the present invention is computerreadable medium for automatically identifying products for associationwith a document including instructions for parsing a document,instructions for determining word scores of the words in the documentbased on the frequency of the words in the document, instructions foradjusting the word scores of the words by predetermined weightingscorresponding to the use of each word in the document, instructions forconstructing a keyword query search string using words having thehighest word scores, instructions for searching a products databasehaving product records containing information regarding an associatedproduct to identify products satisfying the keyword query search string,instructions for assigning product scores to the identified productsbased on matches to the keyword query search string, instructions forparsing the product records to identify word matches in each of theproduct records and the document, instructions for updating the productscore by processing the adjusted word scores corresponding to thematched word with the product score of the product for which wordmatched, and instructions for selecting products from the identifiedproducts that have the highest updated product scores.

These and other advantages and features of the present invention willbecome more apparent from the following detailed description of thepreferred embodiments of the present invention when viewed inconjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of a product placement engine inaccordance with one example embodiment of the present invention.

FIG. 2 is a flow diagram schematically illustrating one example methodin accordance with another aspect of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 shows a schematic illustration of a product placement enginesystem 10 (“product placement engine”) in accordance with one exampleembodiment of the present invention that minimizes the above noteddisadvantages associated with present systems and methods foridentifying appropriate products for a particular document such as a webpage. It should be noted that whereas the embodiment of the presentinvention is specifically discussed for analyzing web pages which aredocuments published or accessible through the web, it should beunderstood that the present invention is not limited thereto but may beused for analysis of any documents to associate products to thedocument. However, as will be evident from the discussion below, thepresent invention is especially advantageous when implemented to analyzeweb page documents.

As described in further detail below, the product placement engine 10associates products from a catalog or a database of products to a webpage, even if the web page does not mention any particular product or isnot discretely associated with a product. In this manner, the productplacement engine 10 also minimizes cost associated with identifyingappropriate products, and can perform these tasks substantiallyautomatically with minimal input from the administrator or otherpersonnel.

In accordance with the illustrated embodiment of the present invention,the product placement engine 10 is provided with a central processingunit 12 (hereinafter “CPU”) which is adapted to control and/orfacilitate functions of various modules of the web page 10 as describedin detail below. It should be initially noted that the product placementengine 10 of FIG. 1 may be implemented with any type of hardware andsoftware, and may be a pre-programmed general purpose computing device.For example, the product placement engine 10 may be implemented using aserver, a personal computer, a portable computer, a thin client, or anyother appropriate computational devices. The product placement engine 10may be a single device at a single location as shown in the exampleembodiment of FIG. 1, or be implemented as multiple devices at a single,or multiple, locations that are connected together using any appropriatecommunication protocols over any communication medium such as electriccable, fiber optic cable, any other cable, or in a wireless manner usingradio frequency, infrared, or other technologies.

The product placement engine 10 is connected to a network 30 that allowsremote access to the product placement engine 10 to allow exchange ofdata and information between the product placement engine 10 and otherdevices connected to the network 30. The network 30 allows the productplacement engine 10 to access client websites that utilize the functionand services provided by the product placement engine 10. The network 30may be any type of communications channel, such as the Internet or theWorld Wide Web, a local area network (LAN), a wide area network (WAN),direct computer connections, and may be accomplished in a wirelessmanner using radio frequency, infrared, or other technologies, using anytype of communication hardware and protocols.

In one example implementation, the product placement engine 10 isengaged when a client requests the results of the analysis for a givendocument. For example, this could be accomplish using a Javascriptinclude on the client's webpage. The input to the product placementengine 10 may be the fully qualified location of the document itself, inthis case, the URL on the client's website. The document location ispre-processed in order to guarantee its uniqueness so as not to have theproduct placement engine 10 analyze the same document more than once.This may include recognizing and stripping standard web sessionidentifiers from the URL, for example. Once the document location iscleansed, it may then be regarded as a key. When the client requests theresults from the product placement engine 10 for a given document, thesystem looks to see if the analysis has been completed by looking indatabase 13, and if so, returns those results. Otherwise, the productplacement engine 10 performs the analysis. If the analysis cannot beaccomplished in real-time, the system returns an appropriate set ofdefault products references as place holders. This process continuesuntil the product placement engine 10 completes the analysis for saiddocument, and places the results in database 13.

In the illustrated embodiment, a client's website 40 is connected to thenetwork 30, the client can be any party having web pages 42 that arepublished or otherwise accessible through the network 30. For example,the web page may be about cameras generally, and more specifically,setting the aperture of a camera in general, but may or may not identifya specific model of a camera. The product placement engine 10 of thepresent invention allows targeting of such a web page with productsassociated with photography which will likely be related to the contentof the web page. A set of links to product pages on a comparisonshopping service such as www.shopper.com may be generated by the productplacement engine 10 and provided to the client website 40. It should benoted that whereas only one client website 40 is shown as beingconnected to the network 30 in the illustrated example of FIG. 1, otheradditional client websites may be connected to the network 30 as well.

The product placement engine 10 is connected to, or otherwise has accessto, a products database 34 that includes detailed information regardingvarious products from which the product placement engine 10 selects asbeing relevant to a particular web page. The products database 34 may bestructured in any appropriate manner and the products cataloged toexpedite searching and retrieval of products and product information.

The product placement engine 10 is provided with a processor 12 thatprovides processing support to the various components of the productplacement engine 10, and a database 13 for allowing storage of variousdata, information, and constants that are used, derived, or analyzed bythe product placement engine. In this regard, the product placementengine 10 is provided with a parser 14 that is adapted to parse webpages into constituent parts (title, main body, etc.) that make up theweb page.

The product placement engine 10 of the illustrated embodiment alsoincludes an analysis module 16 that analyzes the parsed web page tobuild a word analysis map of the most prominent words and phrases. Suchwords and phrases are used by a keyword constructor module 20 toconstruct a keyword query that is queried to the products database 34. Asearch engine 21 is also provided for searching and retrieving productrecords from the products database 34 that satisfy the keyword query.The products are scored based on matches to the keyword query.

The product placement engine 10 also includes a post-processing module22 that further analyzes the product records retrieved from the productsdatabase 34. The post-processing module 22 re-scores the products thatare identified and retrieved by the search engine 21. The re-scoredproducts are ranked and the highest ranking results are provided to adisplay module 28 which prepares a product placement unit such as an ador a link embedded within, or otherwise associated with, the web pagethat was analyzed. The functions of each of these modules of the productplacement engine 10 are discussed in further detail below.

It should be understood that these modules are merely schematicallyillustrated and discussed based on their function for clarity purposesonly, and do not necessary represent specific hardware or software ofthe product placement engine 10. In this regard, these modules may behardware and/or software implemented and substantially perform theparticular functions explained. Moreover, two or more of these modulesmay be combined together within the product placement engine 10, oralternatively, modules may be divided into different modules based onthe particular function desired. Thus, the present invention asschematically embodied in FIG. 1 should not be construed to limit theproduct placement engine 10 of the present invention.

The parser 14 and the analysis module 16 work together to initiallyobtain and analyze the contents of the web page on client's website toidentify various keywords in the web page. In the preferred embodimentof the present invention, the parsing and analysis of the web page bythe parser 14 and the analysis module 16 are attained by initiallycounting the frequency and observing the formatting characteristics ofthe words in the parsed web page as described in further detail below.It should be noted that as used herein, the terms “word” or “words”refer to individual words as well as to “lexicon headword entries” whichcan include single words, and also 2- or 3-word collocations, forexample, “Sony PlayStation,” “Sound Blaster” or “United States”.

In the preferred embodiment, observations of “stop words” occurring inthe main body of the web page are not counted and are ignored. Examplesof such stop words may include prepositions, articles, negations,special words like “www”, “.com,” etc. These stop words may be providedin a list that is stored in the database 13 for retrieval and referenceby the analysis module 16. Moreover, stemming and inflection lists mayfurther be provided in the database 13 which are used by the analysismodule 16 to ensure variations of the same word are counted as a singleword instead of as different words. For example, the words “running” and“ran” may be listed as a variation of “run” and thus, are counted asinstances of the same word. Finally, in the illustrated embodiment,numbers within the web page may be ignored by the analysis module 16unless the numbers are determined to be a part of product model names.

A word analysis map is generated by the analysis module 16 for everyword in the web page being analyzed, each word having a frequency objectthat stores analysis information regarding a particular word as used inthe web page. In this regard, the analysis map may be implemented usingthe following data structure shown in TABLE 1:

TABLE 1 Keyword Analysis Object: Data Structure Name Type FunctionFRQTotal Unsigned integer Total number of instances of word in documentFRQUpCase Unsigned integer Number of instances with no lower case (e.g.“IBM”) FRQLoCase Unsigned integer Number of instances with all lowercase letters and no numbers (e.g. “boy”) FRQLeadCaps Unsigned integerNumber of instances with leading caps (e.g. “Apple”) FRQMidCaps Unsignedinteger Number of instances having some but not all capital letters,other than leading caps (e.g., “iPod”) IsNumAlpha Boolean Is word amixture of letters and numbers (e.g. ‘nr7000”) EmphasisCases Unsignedinteger Number of instances having emphasis WordScore Unsigned integerFinal word score based on the counts of the occurrences and specialbonuses/penalties.

As shown, the word analysis map data structure of TABLE 2 sets forthvarious frequency information regarding a particular word, suchinformation being defined by objects in the Name column, as well as theobject Type. The Function column is provided to facilitate understandingof the objects referred to in the word analysis map. The word analysismap serves as a working space to record characteristics of the word asfound in the web page during the parsing and analysis by the parser 14and the analysis module 16. The “WordScore” object is a tally of pointsfor the particular word or phase, the points being updated (increased ordecreased) in the manner described in further detail below. Of course,the above described frequency map and the corresponding data structureare merely one example embodiment of how the present invention may beimplemented, and the present invention is not limited thereto.

Each of the words in the web page that is parsed and analyzed areweighted so that the word score for each of the words are adjusted basedon various assigned points in accordance with the words' occurrence anduse in the web page. The results of the analysis recorded into the wordanalysis object map of the corresponding words. In the exampleembodiment described herein, each of the words are weighted based on theconstants listed in TABLE 2:

TABLE 2 of Constants Defined Name Weight Decay TitlePoints 50 50 Pointsassigned for a word found in the document title (appearing in the windowbar on the browser). SubtitlePoints 30 50 Points assigned for a wordappearing in a major heading or subheading within the web document (e.g.H1 or H2 tags in HTML) MetaKWPoints 20 50 Points assigned for a wordappearing in the meta-tag “keywords” or in the inferred set of keywordsfor the document. MetaDescPoints 40 50 Points assigned for a wordappearing in the meta-tag “description” or in a document summaryparagraph. AncestryPoints 30 50 Points assigned for a word appearing inthe “ontology bread-crumb” showing the parent categories of the currentpage. ArticlePoints 10 50 Points assigned for a word appearing in thedocument main body. EmphasisPoints 20 50 Points assigned for a wordappearing with emphasis, e.g. underlined, bold, italics, or as theanchor of a hyperlink. MfgBonusBasis 60 50 Basis for a bonus to be addedfor a word occurring as part of a manufacturer name in the productcatalog. BrandBonusBasis 50 50 Basis of a bonus to be added for a wordappearing as part of the brand names found within the product catalog.SeriesModelBonusBasis 50 50 Basis of a bonus to be added for a wordappearing as a part of the product series names and/or product modelnames found within the product catalog. ProximityBonus 15 50 Bonusapplied when a non-lower-case word is found collocated and with anestablished Manufacturer, Brand, or Model name, e.g. boosts “Cybershot”when found next to “Sony” even if “Cybershot” were not an establishedproduct series name. DescriptorBonus 30 50 Bonus added for a wordappearing within the descriptor (a descriptively referentialnoun-phrase) of products found within the product catalog.DescriptionBonus 10 50 Bonus added for a word appearing within the longproduct descriptions in the product catalog. PropertyNameBonus 20 50Bonus added for a word appearing within the property names of thecatalog, e.g. “CPU” or “batteries”. PropertyValueStringBonus 25 50 Bonusadded for a word appearing within the property values of products in thecatalog, e.g. “Pentium” or “NiCad.” LowFreqNameBonus 35 50 Bonus addedfor words that are almost certainly (based on case and their appearingexclusively in name fields) a brand or model name, but are lowfrequency, will receive a boost-otherwise their low frequency wouldensure that they were left out of the kw query. MaxKeyWords 10 N.A.Maxinum number of keywords, derived from the results of documentanalysis, that shall be used to construct a Boolean keyword query intothe product database. MinKey Words  2 N.A. Minimum number of keywords,derived from the results of document analysis, that shall be used toconstruct a Boolean keyword query into the product database.PreferredMinScore 50 N.A. Minimum score of a keyword, after documentanalysis, in order for it to be included in the Boolean query; this isrelaxed if MinKey Words is not satisfied.

As can be seen, TABLE 2 sets forth weighting points and the decaypercentages for corresponding constants that may apply to the words ofthe web page parsed. These constants are identified in the “Name”column, a brief description of the constants being provided therein. Asalso discussed below, corresponding weight points and decay percentagesare assigned for each instance of the word for which the constantapplies. For example, upon parsing, if a word, e.g. “Sony”, is found inthe document title which appears in the window bar of the browser, theword is assigned the TitlePoints, in the present example, 50 points sothat the word score is increased by 50 points in the word analysis map.Supposing the word is found again in plain text in the main body of thedocument, then the word receives additionally ArticlePoints, in thepresent example, 10 points, so that the word score is increased by 60points.

In addition, the “Decay” column sets forth the key factor in determiningthe slope of the mathematical falling-off of the points added in thecase of repeated instances of the conditions which trigger theapplication of the points. Thus, repeat occurrences of the same word inthe same document object will carry a gradually decreasing amount ofbonus points for that word so that the word score is increased by adecreasing amount. In the above example, if the word “Sony” is found twomore times in the main body, the first of the two instances willincrease the word score by 5 points, while the second of the twoinstances will increase the word score by 2.5 points, owing to decay, sothat the total increase in the word score in the word analysis map wouldthen be 67.5 points. The constants with their respective weight pointsand decay percentages as set forth in TABLE 2 may be stored in thedatabase 13 and controlled by the processor 12 so that the correspondinginformation can be quickly retrieved and applied by the analysis module16.

Some of the constants in TABLE 2 (namely, PropertyNameBonus,PropertyValueStringBonus, LowFreqNameBonus) aim to purposely biasing ofthe word scoring of a word. Specifically, these constants weigh in favorof words that are more likely to be related in a meaningful way toproducts, rather than other random or ordinary words in the Englishlanguage. This bias is advantageous in that it serves well the purposeto which the word scores used, namely, the construction of a Booleankeyword query for searching the product database 34 as described indetail below. The resulting sub-set of highest scoring words will thenbe not a completely balanced representation of the document's overallcontents. Instead, resulting sub-set of highest scoring words will be asomewhat relatively balanced representation that over-represents wordsand phrases that are more likely to be product related, whileunder-represents words and phrases that are more likely to be productrelated.

For example, the word “Sony” may rank only 25th among the most frequentwords in the document, and “privilege” may rank first. However, if“privilege” is a very rare word in the product database 34 and “Sony” isa very common word, then the above described method will bring about theeffect of “Sony” being scored higher that “privilege”. This provides abeneficial effect of our actually finding more matches in the productdatabase 34 that are potentially relevant and associable to the webpage.

Where bonuses appear in TABLE 2 as a “bonus basis” rather than simply abonus, the basis is first factored against another relevant metric. Forthe Manufacturer, Brand, and Model bonuses, the basis is multiplied bythe inverse of the word's common corpus frequency score. Thus, forexample, “Smith” in the brand name “Smith and Barney” will get a lowerbonus because it is a common word in the English language. This isadvantageous because, in this example, even though “Smith” is a validpart of a popular brand name, it is much more often a word not relatedat all to products, and therefore, odds are that when found in a generalweb page, it is not going to turn out to be the basis of a goodproduct-related word match.

Of course, it should be understood that the various constants for wordsand the corresponding weight and decay percentages set forth in TABLE 2discussed above are merely provided as one example embodiment and thepresent invention is not limited thereto. The values given in the tableare for illustrative purposes only, and are subject to modification andchange to achieve optimal results. Thus, in other implementations, theproduct placement engine 10 may be provided with different constants anddifferent corresponding weighting points and decay percentages.

As can appreciated by examination of the names of the various constantsset forth in TABLE 2, the parser 14 and the analysis module 16 of thedescribed embodiment parse and analyze the entire web page, and not justthe prose text in the main body of the web page. The section of thedocument in which the word is found can impact which constant from TABLE2 is applicable. Thus, the parser 14 obtains the meta-tagged keywords,meta-tagged description, title from window bar, headings, sub-titles,etc. This may be attained using Document Object Modeling or othersimilar procedures known in the art. If meta-tagged keywords are notpresent, heuristic processes for extracting the keywords from thedocument may be used, ranging from executing an advanced documentsummarizer, to simply extracting words most frequently occurring in thetitles and section headings of the web page. As part of the DocumentObject Modeling analysis, sections of the web page deemed to besuperfluous to the main thrust of the document can be excluded from theanalysis. Such sections may include advertisements, navigation links toother unrelated articles, etc.

Of course, the prose text in the main body of the web page itself isalso parsed and analyzed by the parser 14 and the analysis module 16,respectively. In parsing the prose text in the main body of the webpage, emphasis factors such as bold, italic, etc., are also noted foreach word and the corresponding EmphasisPoints set forth in TABLE 2 areassigned so that the word score for the word is correspondingly updated.As noted, the various constants for words and the corresponding weightand decay percentages set forth in TABLE 2 discussed above are merelyprovided as one example embodiment and the present invention is notlimited thereto.

In the above described manner, the analysis module 16 calculatesadjustments to the word score using the various constants as set forthin TABLE 2, and updates the analysis statistics and the word score inthe word analysis map. As noted above, for each occurrence of a word, adetermination as to whether a constant applies is made by the analysismodule 18 and the corresponding weight points assigned in TABLE 2, withthe decay percentages factored therein, added to the word score.

For all Names set forth in TABLE 2 that are identified as a bonus,synonyms, hypernyms, or hyponyms of the words may be partially countedas an occurrence of the word so that only a portion of the correspondingpoints are assigned. In addition, for triggering the bonuses for theconstants named Manufacturer, Brand, Series, and Model, an alias tablethat sets forth alternative strings and/or wildcards can be provided inthe database 13 which is referred to by the analysis module 16 so thatdifferent aliases are counted as being the same. For example, an aliastable may be provided in the pre-processing database that indicates that“Sound Blaster” and “SoundBlaster” are the same, and that “Sony” and“Sony, Inc.” are the same. In the foregoing example of the word “Sony”,where the word score is increased by 67.5 points, if an instance of“Sony, Inc.” occurs in the web page, it would be a match to the word“Sony” and the word score for “Sony” would be increased an additional 60points.

For analysis of ontology associated words, for example, as identified inthe constant named AncestryPoints, the analysis module 16 may be adaptedto use ontology synonyms and hyponyms as well, such synonyms andhyponyms being stored as a list in the database 13. For each of thesebonuses, the normalized score of the frequency of the word in questionfrom the product database 34, for each of the given fields, ismultiplied into the bonus. This helps to boost the score of prominentwords from each field. For example, the normalized frequency score of“Sony” in the manufacturer field in the product database 34 may be 0.9,whereas “Nikon” may only be 0.5. This means that, all things beingequal, the word “Sony” will be more preferable than “Nikon”, especiallywith regard to the probability of the rest of the words selectedsatisfying all of the keywords (i.e. intuitively, Sony has more of avariety of products, hence more likely to find a product relevant to theweb page).

Generally, a word being more prevalent in the web page results inassigning of greater weight (i.e. points) in the above analysis by theanalysis module 16. However, some exceptions are preferably made by theproduct placement engine 10 to compensate for the fact that some wordsare commonly used. In this regard, a differential analysis of frequencymay be performed which compares the web page or pages of the client'swebsite to the general corpus of English text so that words commonlyfound during the parsing and analysis by the product placement engine10, but also common in English generally, will not be over-weighted.

Conversely, the “LowFreqNameBonus” constant listed in TABLE 2 ensuresthat words which are, with a high degree of certainty, a brand or modelname, will not receive a very low weight just because of the fact thatsuch words are rare in the web page or pages of the client's website,for example, the brand name “Integron”. In this regard, low frequencywords that are found in the manufacturer, brand, or model identificationfields of the database are given a bonus if they are also always foundin non-lowercase form, as this probably indicates a type of proper namethat is going to be of low frequency, but is the paradigmatic word ofinterest. For example, there may be only three occurrences of the word“iPod” (i.e. assuming there were only three versions of the iPodproduct), hence the frequency score would be very low. However, onewould expect that if a web page mentioned the word “iPod”, that theproducts in the products database that is identified by the searchengine 21 would include the iPod products.

The keyword construction module 20 of the product placement engine 10then normalizes the word scores of the words of the web page as analyzedin the manner described above on a 0.0 to 1.0 scale. An example resultwould be that the product name field and brand field would be rankedhigh (e.g. 0.95), and the specifications of less importance ranked low(such as connectors included on a camera, e.g. 0.30). The keywordconstruction module 20 then selects the words from the analyzed web pagehaving the highest word scores as “keywords” for use in constructing akeyword query. It should be noted that normalization of the word scoresneed not be performed in other embodiments. Instead, words having thehighest word score may be selected for use as keywords. As a result ofthe above described analysis, the various top scoring words are thosehypothetically most likely to be associated with products that would bedeemed relevant to the analyzed web page and can be associatedtherewith.

The keyword construction module 20 constructs a keyword query from thewords with the highest scores, i.e. keywords. The number of keywordsselected by the keyword construction module 20 may be predetermined bythe administrator of the product placement engine 10, or otherwiseselected by the product placement engine 10. In this regard, a range inthe number of keywords to be selected may be provided. In addition, aminimum score may be required for the word to be selected. The keywordconstruction module 20 assembles a query string of the keywords using aninclusive Boolean “OR”. In a preferred embodiment, the keywords may bemodified to include wildcards. Such a feature may be limited to wordslonger than two characters in length and having no numeric digits as acharacter. In addition, stemming and/or inflection for the keywords mayalso be utilized.

As noted, the product placement engine 10 also includes a search engine21 that searches for the constructed keyword query in the productsdatabase 34. The search engine 21 identifies and returns a list ofproducts from the product database 34. In other words, the search engine21 identifies those products satisfying the auto-created search queryfrom the products database 34. The identified and returned productslisted each have an initial product score based on the number of keywordmatches found. This product score is then updated in the mannerdescribed below, the updated product score being used to facilitateselection of the products to be associated with the web page.

One advantageous aspect of using search engine 21 and providing aninitial product score based on the number of keyword matches found (andnot just tossing out the relevance/match scores) is that there areheuristics that may be useful in determining which products are to beselected for association with the web page. Hence, the presentlydescribed embodiment piggy-backs off of this relevancy and preserves it.

The product records associated with the list of products identified andreturned by the search engine 21 are then retrieved from the productdatabase 34. It should be understood that the term “product record” asused herein refer not only to the specifications of the product, butalso external documents and other information about the product,including but not limited to, the manufacturer's product page on theirwebsite, the user manual for the product, marketing collateral documentsfor the product, merchant or reseller web pages concerning the product,reviews of the product, sales data about the product, popularity data onthe product, etc.

These retrieved product records are further processed by the postprocessing module 22 to select the most appropriate products which canbe associated with the web page analyzed from the list of identifiedproducts. Rather than assuming that a simple keyword search matchprovides accurate and desirable results for products, the productplacement engine 10 in accordance with the present invention furtherevaluates each of the products identified in the search results returnedby the search engine 21, and updates the scores of the products in themanner described below to select the most appropriate products. Thisre-scoring or updating of the product score is performed by parsing andanalyzing the retrieved product record and any other textual informationassociated with the identified products that were returned by the searchengine 21. The parsing function may be performed by the parser 14 or thepost processing module 22 itself.

More specifically, each of the product records associated with theidentified products are retrieved and parsed by the post processingmodule 22, and each of the words in the product record are compared tothe words of the original source web page (i.e. the web page from whichthe key words were derived). In the illustrated embodiment, all of thewords of the product record are compared to all of the words from theoriginal source web page, and not just to the keyword query words thatwere auto-created from parsing and analysis of the web page. If there isa match between a word of the product record and a word in the web page,the product score of the product associated with the product record isupdated by adding, combining, or otherwise processing the product scorewith the amount of the word score set forth in the word analysis map ofthe particular word. Thus, the updating of the product score in thismanner reflects the various “bonuses” set forth in TABLE 2 since theword score incorporated the weightings.

In addition, various penalties and other constants are applied inupdating the product score based on matching of a word in the productrecord with a word in the web page. These penalties and other constantsare set forth in TABLE 3:

TABLE 3 of Constants Defined Name Weight Decay KWMatchDecay N.A. 50 Foreach occurrence of the word in the product record, the *original* scoreof the keyword (calculated in preprocessing phase) is added into a finalscore variable *for each keyword occurrence*, with the decay multipliedinto the keyword's original score for each occurrence. ExtraWordPenalty10 N.A. Decrease of any aforementioned “bonus” for each additional wordfound in the same field that is not included in the selected keywordset. RegKWScorePercInclude 70 N.A. Proportion of final product scorethat derives from the original keyword search score (the differencebetween this number and 100 reflects how much of the final score willderive from all possible bonuses). DomainPenalty 50 N.A. Handicapapplied to put items of a certain product domain, e.g. media items(books, movies, music, posters, magazines) generally below products ofother domains Employed mostly to achieve business objectives.

The word score is processed, for example, added with the product score,applying the KWMatchDecay for each occurrence after the first. Each ofthe words that is not found in the original document, contributes apenalty of ExtraWordPenalty as set forth in TABLE 3. The bonus for idealprice range as defined in the constant IdealPriceMid is dynamicallyadjusted for the domain most prominent among the results. Thus, thepresent embodiment gives preference to product that falls within aparticular price range.

In those instances where the keywords found are 2- or 3-wordcollocations, and if the keyword search supports only single words, thenthe post-processor module 22 may be adapted to re-check the searchresults to ensure that collocations were found in whole, rather thandisjointed. This would require that that the statistical occurrences ofthese collocations be recorded during the preprocessing phase. Moreover,additional step of eliminating near-duplicate products may further beperformed by the post processing module 22. Duplication may be based ona determination that the brand, the price, and the specifications fortwo products listed are the same or similar. In such an instance whereduplication is likely, the oldest and/or lowest scoring product that islisted can be eliminated.

In still other embodiments of the present invention, additionaladjustments to the bonuses set forth in TABLE 2 may be implemented bythe post processing module 22. For example, bonuses may be providedbased on preferred brands or resellers, based on recency where newerproducts are weighted more highly than over older products, based onpopularity where top-selling or most-requested products are weightedmore highly, and/or based on existence of content such as images,specifications, product briefs, reviews, and/or user opinions. Inparticular, such “Secondary-level bonuses” may include any bonuses keyedto information outside of the material specifications or manufacturerproduct data on the product, but include information which is external,yet importantly related, to the product, such as its popularity in themarketplace, the use-case scenarios in which it is commonly used,professional reviewers' evaluative ratings of the product, and/or otherexternal information related to the product. As such, these bonusestechnically have nothing to do with the original text, but are purelyreflective of how preferable a product is from the point of view humaninterests such as merchandizing, marketing, and probably usersatisfaction. Examples of such secondary bonuses are set forth in TABLE4:

TABLE 4 SECONDARY BONUSES TABLE Bonus Points Decay IdealPriceHi 5,000N.A. Ideally the price above which candidate products should berejected. IdealPriceLo 20 N.A. Ideally the price below which candidateproducts should be rejected. IdealPriceMid 500 N.A. Ideally the targetprice most preferred for a candidate product. Popular info request bonus40 n.a. (multiplied by percentile rank of product relative to all otherswithin the catalog, based on information requests) Popular price requestbonus 50 n.a. (multiplied by percentile rank of product relative to allothers within the catalog, based on price requests) Sales bonus(multiplied by 60 n.a. percentile rank of product relative to all otherswithin the catalog, based on sales data) Professional Reviews 10 .50Bonus (points for each review existing from a compendium of respectedreview sources) Average Professional 70 n.a. Review Score Bonus (bonusmultiplied by normalized rating of plural number of professionalreviews) User Reviews Bonus 15 n.a. (bonus multiplied by normalizedpercentile score of number of reviews relative to other products in thesame category of approximately the same release date) Average UserReview 30 n.a. Score Bonus (bonus multiplied by normalized rating ofplural number of professional reviews) Release Date Recency 40 0.98Bonus (Product released per day today gets full bonus, bonus decayingexponentially toward zero with time) Market availability (based 50 n.a.on number of independent resellers offering product, and the number ofthose that are in stock instead of out-of-stock, and the number of thosethat are not refurbished but actually brand new product)

Upon updating the product scores of the listed products returned by thesearch engine 21 in the above described manner, the post processingmodule 22 re-sorts the list based on the results of the updating andthose products having the highest products scores are selected forassociation with the original source web page. The number of productsselected may be predetermined by the administrator of the productplacement engine 10, or otherwise selected by the product placementengine 10. A minimum score threshold may be applied by the postprocessing module 22 so that those products having a score that is belowthe minimum score threshold are discarded. The re-sorted list ofproducts is provided to the display module 28 that sends the results tothe client 40 for display as advertisements or links, or in other formatas being products that the user may want to consider.

In addition, it should also be evident to one of ordinary skill in theart that another aspect of the present invention is a method foranalyzing web pages. In this regard, FIG. 2 is a flow diagram 60schematically illustrating one example method. As shown, method includesproviding a products database having product records containinginformation regarding an associated product in step 62, parsing adocument in step 64, and determining word scores of the words in thedocument based on the frequency of the words in the document in step 66.The word scores are adjusted by predetermined weightings correspondingto the use of each word in the document in step 68, and a keyword querysearch string is constructed using words having the highest word scoresin step 70. In step 72, the product records of the products database aresearched to identify products satisfying the keyword query searchstring, and in step 74, product scores are assigned to the identifiedproducts based on matches to the keyword query search string. Theproduct records are parsed in step 76 to identify word matches in eachof the product records and the document. The product score is updated instep 78 by processing the adjusted word scores corresponding to thematched word with the product score of the product for which wordmatched. In step 80, products from the identified products that have thehighest updated product scores are selected.

As can be appreciated from the above discussion, the present inventionmay be used to take a web page from any type of website, and relateproducts to the content of the web page. This may be practiced theclient site placing a link into their site that sends a message to theproduct placement engine of the present invention instructing to analyzethe web page. The product placement engine sends back links to productson the host site to thereby facilitate contextual marketing.

In view of the above, it should now be evident to one of ordinary skillin the art how the present invention provides a method and system thatminimizes the above noted disadvantages associated with present systemsand methods for identifying products appropriate for being associated toa web page. In addition, it should be evident how the present inventionminimizes cost and can identify products substantially automaticallywith minimal input from the administrator or other personnel.

While various embodiments in accordance with the present invention havebeen shown and described, it is understood that the invention is notlimited thereto. The present invention may be changed, modified andfurther applied by those skilled in the art. Therefore, this inventionis not limited to the detail shown and described previously, but alsoincludes all such changes and modifications.

We claim:
 1. A method, executed within a computing system includingmultiple devices coupled to one another by a computer communicationsnetwork, for selecting at least one product record for association witha document displayed in a user interface rendered by a user computingdevice, the method comprising: analyzing, by a server that is remotefrom the user device and coupled to the user computing device over thenetwork, at least a portion of the document for at least frequency ofwords in the document; constructing, by the server, a query searchstring at least partially based on words of the document having highestfrequencies; searching product records in a products database toidentify products satisfying the query search string, the productsdatabase being remote from the server and the user computing device andcoupled to the server over the network; selecting, by the server, atleast one product from the identified products for display in the userinterface; and embedding, by the server, at least product recordcorresponding to the at least one product into the document for displayin the user interface of the user computing device, wherein the documentis not stored within the products database.
 2. The method of claim 1,wherein the server comprises multiple devices.
 3. The method of claim 1,further comprising the user computing device making a request to theserver for embedded content.
 4. The method of claim 1, wherein saidconstructing step includes constructing a search corresponding to wordsof the document having the highest frequencies.
 5. The method of claim1, wherein said analyzing step includes determining use of the words inthe document.
 6. The method of claim 1, wherein the document is a webpage.
 7. The method of claim 1, wherein the user interface is a web pagegraphically rendered by a browser.
 8. A product placement system,including multiple devices coupled to one another by a computercommunications network, for selecting at least one product record fordisplay in a user interface rendered by a user computing device, thesystem comprising: an analysis module adapted to analyze at least aportion of a document for at least frequency of words in the document,the analysis module being part of a server that is remote from the usercomputing device and coupled to the user device over the network; aconstructor module adapted to construct a query search string at leastpartially based on the words of the document having highest frequencies,the constructor module being part of the server; a search engine adaptedto search product records in a products database to identify productssatisfying the query search string, the products database being remotefrom the search engine and the user computing device and coupled to theserver over the network; a post processing module of the server adaptedto select at least one product from the identified products for displayin the user interface and cause at least product record corresponding toone of the selected products to be embedded into the document fordisplay in the user interface of the user computing device, wherein thedocument is not stored within the products database.
 9. The system ofclaim 8, wherein the server comprises multiple devices.
 10. The systemof claim 8, further comprising the user computing device making arequest to the server for embedded content.
 11. The system of claim 8,wherein the query search is constructed based on words of the documenthaving the highest frequencies.
 12. The system of claim 8, wherein theanalyzing includes determining use of the words in the document.
 13. Thesystem of claim 8, wherein the document is a web page.
 14. The system ofclaim 8, wherein the user interface is a web page graphically renderedby a browser.